// Header Protection
#ifndef _INPUTSYSTEM_H_
#define _INPUTSYSTEM_H_

// Include Files
#include "Definitions.h"
#include "System.h"

// Forward Declarations
class CInputNode;

// Namespace
namespace IE
{
	/////////////////////////////////////////////////////////////////////////////////
	// A system which checks input devices for the scene.
	class CInputSystem : public ABCSystem
	{
	public:     // methods
		CInputSystem() : ABCSystem() { }
		virtual ~CInputSystem() { }

		// Initialize the input system.
		void Initialize();

		// Shutdown the physics system.
		void Shutdown();

	private:    // ABCSystem override methods

		// Called when the thread is started.
		virtual void ThreadBegin();

		// Called when the thread is stopped.
		virtual void ThreadEnd();

		// Called at the frame rate with which StartThread was called.
		// _fTime: float_t - the seconds that have passed since the last tick
		virtual void ThreadTick( float_t _fTime );

	private:    // data
		flist_t<CInputNode *> m_lstNodes;

	private:    // dummy definitions
		CInputSystem( CInputSystem const & );
		CInputSystem &operator =( CInputSystem const & );
	};
}

// Header Protection
#endif // _INPUTSYSTEM_H_
